100 REM TI JUMPING JACK
110 DIFF=1
120 RESTORE
130 RANDOMIZE
140 CALL CLEAR
150 GOSUB 1080
160 PRINT "LEVEL:";DIFF
170 DIR=1
180 PR=0
190 FOR I=2 TO 22 STEP 4
200 CALL HCHAR(I,1,96,32)
210 IF I>20 THEN 270
220 R=INT(RND*26+4)+DIR
230 IF (SGN(R-PR)<>DIR)THEN 220
240 CALL VCHAR(I,R,104,4)
250 PR=R
260 DIR=-DIR
270 NEXT I
280 COL=2
290 ROW=1
300 CHAR=112
310 OLDCOL=1
320 OLDROW=1
330 OLDCHAR=32
340 DIR=1
350 CALL HCHAR(OLDROW,OLDCOL,32)
360 IF RND>DIFF/10 THEN 430
370 R=INT(4*RND)*4+6
380 C=INT(RND*32)+1
390 CALL GCHAR(R,C,A)
400 IF A=104 THEN 430
410 CALL HCHAR(R,C,120)
420 CALL SOUND(100,-1,4)
430 CALL HCHAR(ROW,COL,CHAR-2*(DIR<0))
440 CALL SOUND(-5,-7,4)
450 IF ROW>20 THEN 990
460 OLDCOL=COL
470 OLDROW=ROW
480 COL=COL+DIR
490 IF (COL>0)*(COL<33)THEN 540
500 COL=COL-DIR
510 ROW=ROW+4
520 DIR=-DIR
530 GOTO 350
540 CALL GCHAR(ROW+1,COL,CHECK)
550 CALL KEY(0,K,ST)
560 IF ST THEN 640
570 IF CHECK=120 THEN 770
580 IF CHECK<>104 THEN 610
590 DIR=-DIR
600 ROW=ROW+4
610 CHAR=225-CHAR
620 SCORE=SCORE+.5
630 GOTO 350
640 IF CHECK<>120 THEN 1030
650 CALL HCHAR(OLDROW,OLDCOL,32)
660 CALL HCHAR(ROW-1,COL,112-2*(DIR<0))
670 CALL SOUND(5,250,10)
680 CALL SOUND(5,200,10)
690 CALL SOUND(5,300,10)
700 CALL HCHAR(ROW-1,COL,128)
710 SCORE=SCORE+25
720 CALL SOUND(-500,500,1,510,10,520,20)
730 CALL SOUND(1,110,30)
740 CALL HCHAR(ROW-1,COL,32)
750 COL=COL+DIR
760 GOTO 490
770 CALL KEY(0,K,ST)
780 IF ST THEN 580
790 CALL HCHAR(OLDROW,OLDCOL,32)
800 CALL HCHAR(ROW,COL,116)
810 FOR I=1000 TO 1020
820 CALL SOUND(-1,I,0)
830 NEXT I
840 CALL HCHAR(ROW,COL,32)
850 CALL HCHAR(ROW+1,COL,121)
860 CALL SOUND(1000,-2,4,110,4)
870 CALL SOUND(1,110,1)
880 CALL CLEAR
890 CALL SCREEN(12)
900 PRINT "YOUR SCORE WAS:";INT(SCORE)
910 PRINT :"PLAY AGAIN? (Y/N):";
920 CALL KEY(3,K,ST)
930 IF (K<>ASC("Y"))*(K<>ASC("N"))THEN 920
940 PRINT CHR$(K)
950 IF K=ASC("N")THEN 980
960 SCORE=0
970 GOTO 110
980 END
990 DIFF=DIFF+1
1000 SCORE=SCORE+50
1010 CALL CLEAR
1020 GOTO 160
1030 FOR I=150 TO 140 STEP -1
1040 CALL SOUND(-1,I,1)
1050 NEXT I
1060 SCORE=SCORE-25
1070 GOTO 580
1080 REM INITITIALIZE GAME, CHARACTERS
1090 READ A
1100 IF A=-1 THEN 1250
1110 READ A$
1120 CALL CHAR(A,A$)
1130 GOTO 1090
1140 DATA 96,FF422418182442FF
1150 DATA 104,7E427E427E427E42
1160 DATA 112,1028302478B82442
1170 DATA 113,102830A27C782448
1180 DATA 114,102818483C3A4884
1190 DATA 115,1028184A3C3C4824
1200 DATA 116,001C5D2A1C1C1422
1210 DATA 120,81814222242400C3
1220 DATA 121,BDBD5A22242400C3
1230 DATA 128,0077147741770000
1240 DATA -1
1250 FOR I=9 TO 13
1260 READ A
1270 CALL COLOR(I,A,1)
1280 NEXT I
1290 DATA 6,4,14,10,12
1300 CALL SCREEN(16)
1310 RETURN